package pers.cj.pdos.service;

import pers.cj.pdos.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.cj.pdos.vo.GoodsTransferVo;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author chenj
 * @since 2019-11-04
 */
public interface IGoodsTransferService extends IService<GoodsTransfer> {

    boolean checkNo(String no, String companyId);

    boolean checkClose(GoodsTransfer entity);

    void insert(BusinessSet businessSet,
                GoodsTransfer goodsTransfer,
                List<GoodsTransferGoods> goodsTransferGoodsList,
                List<GoodsSn> goodsSnList,
                List<GoodsSnLog> goodsSnOutLogList,
                List<GoodsSnLog> goodsSnInLogList);

    void close(GoodsTransfer goodsTransfer, BusinessSet businessSet);

    GoodsTransferVo getVoById(String id);

    List<GoodsTransferVo> listVoByIds(List<String> ids);

    List<GoodsTransferVo> listVo(String companyId,
                                 Integer page,
                                 Integer limit,
                                 Boolean close,
                                 String search,
                                 String no,
                                 String goodsName,
                                 String remark,
                                 Date date1,
                                 Date date2,
                                 String outStoreId,
                                 String inStoreId,
                                 String userStoreId,
                                 String userId,
                                 Date makeTime1,
                                 Date makeTime2,
                                 String outHouseId,
                                 String inHouseId,
                                 String makeUserId,
                                 Integer outStatus,
                                 Integer inStatus);

    long count(String companyId,
               Boolean close,
               String search,
               String no,
               String goodsName,
               String remark,
               Date date1,
               Date date2,
               String outStoreId,
               String inStoreId,
               String userStoreId,
               String userId,
               Date makeTime1,
               Date makeTime2,
               String outHouseId,
               String inHouseId,
               String makeUserId,
               Integer outStatus,
               Integer inStatus);

}
